When computer software is created, it is desirable to create a set of help functions that are included with the computer software. The help functions explain various components of the computer software using text and graphics. They can be invoked by a user when the user has a question about the functionality of a particular computer software component or encounters a problem with the computer software during use.
Many computer operating systems such as Windows 95 and Windows NT by Microsoft Corporation of Redmond, Wash. and others use dialog boxes in windows created by the operating system to display help information. A dialog box is a pop-up box which displays additional information for a user and typically contains one or more graphical objects such as graphical buttons that can be selected. Several windowed operating systems such as Windows 95 and Windows NT also provide a context-sensitive help system. A context-sensitive help system allows a user to select with a mouse or other pointing device a graphical control in a dialog box, and then with another selection request help on the graphical control. A graphical control is typically a graphical button, pull-down menu, or other graphical entity that accepts input from a user (e.g., a "click" from a mouse). An example of a graphical control is an Object Linking and Embedding (OLE) control or an ActiveX control known to those skilled in the art. For more information on OLE controls see OLE Controls Inside Out, by Adam Denning, Microsoft Press, Redmond, Wash., 1995. In response to the selection of a graphical control, an operating system help system typically displays a pop-up box containing help information that describes the control's purpose.
During the software development process, help functions are written by help writers, and the remaining portions of the computer software are created by software developers. Help writers are typically responsible for creating the information source files which contain the help information, and assigning unique help function identifiers to help components being developed. The software developers use the help information and help function identifiers as they create a computer software application. In some instances, the help writers and the software developers may be the same individuals.
Incorporating help functions into computer software presents some difficult problems. The graphical controls used within the computer software may change many times during the software development process. Some controls may be added or changed while other controls are removed. The help writers and software developers have to coordinate these changes. The help writers have to update existing help information and help function identifiers based on the changes to the graphical controls. In addition, help writers may have to create additional help information and help function identifiers for the new controls. Software developers also have to update their source code to reflect any changes made by the help writers. If the help writers or software developers do not coordinate their changes, the help functions in the computer software created will not function properly.
Another problem with creating help functions is that multiple help functions may be created that use the same non-unique help identifier for a single graphical control. In this case, the help system will not be able to display correct help information for such a control. Yet another problem associated with creating help functions is that certain graphical controls require special handling. For example, the "OK" and "CANCEL" controls are typically displayed as graphical buttons in a dialog box and have default help information provided by the windowed operating system. As a result, help writers typically do not provide help information or help identifiers for such controls and may not properly coordinate any changes with the software developers that may be required to the corresponding help functions for such controls.
Yet another problem associated with creating help functions is that some dialog boxes with graphical controls cannot be viewed when a computer software application is executed. For example, some dialog boxes may only be displayed if optional software components are installed. As a result, the computer software application may contain help functions and help identifiers that will never be used.
Yet another problem associated with creating help functions is that it is not possible for help writers to immediately test new help functions. The new help functions and the computer software which contain the help functions both have to be completed before any testing can occur.
Yet another problem associated with creating help functions is that complex computer software may contain hundreds of controls in numerous dialog boxes. A help writer may create help information or assign a help identifier to a help function that already exits, while a software developer may use two or more types of help information or help identifiers for the same control. This may create confusion for the help system as well as a software developer trying to use the help functions.
In accordance with an illustrative embodiment of the present invention, the problems associated with creating help functions are overcome. An illustrative embodiment of the present invention includes a method and apparatus for creating help functions with a dialog box help editor. The method and system is used to create context-sensitive help functions. The method for creating such help functions includes locating dialog boxes within a selected computer software application for which context-sensitive help functions will be created. In response to a selection input, a dialog box from the located dialog boxes is displayed on a display device. In response to another selection input, a help function template is created for a selected graphical control object in the selected dialog box. Help information is received and incorporated into the help function template. Source code is generated for a context-sensitive help function for the selected graphical control with information from the help function template.
The dialog box help editor in an illustrative embodiment of the present invention includes a novel construction of modules: a dialog-box-creation-and-display-module which displays a dialog box; a dialog-box-data-organization-module which organizes and manipulates dialog box data; a help-topic-creation-module which creates help information; a dialog-box-change-tracking-module which checks for changes made to the components (e.g., graphical controls) in a dialog box; a dialog-box-code-generation-module which generates computer source code for help functions; and an on-demand-help-testing-module which allows help writers to see the help functions they are writing as they will appear in a finished computer software application without executing the software application.
The foregoing and other features and advantages of an illustrative embodiment of the present invention will be more readily apparent from the following detailed description, which proceeds with reference to the accompanying drawings.